﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using APP_PGM.DB;
using APP_PGM.GUI.Pomocnicze;
using APP_PGM.UZYTKI;
using Obsluga.Gui;
using WMAAN.Uzytki;
using WMAAN.Wyliczenia;

namespace APP_PGM.GUI.Formularze
{
    public partial class FormZmianaPytania : Form
    {
        public FormZmianaPytania()
        {
            InitializeComponent();
        }

        private void FormZmianaPytania_Load(object sender, EventArgs e)
        {
            PGM baza = PGM.Instancja();

            WypelnienieComboBox.Wypelnij(cmbPytanie, baza.dane.pytania_uzytkownika, "id_pytania_uzytkownika", "tresc");

            WypelnienieComboBox.Zaznacz(cmbPytanie, DaneGlobalne.Uzytkownik.id_pytania_uzytkownika);

            txtOdpowiedz.Text = DaneGlobalne.Uzytkownik.odpowiedz;
            
        }

        private void buttonOK_Click(object sender, EventArgs e)
        {
            WalidacjaDanychWejsciowych.Wykonaj(prvObslugaBledow, cmbPytanie, "Proszę wybrać pytanie",
                                               TypWalidacjiDanych.BRAK_TEKSTU);

            WalidacjaDanychWejsciowych.Wykonaj(prvObslugaBledow, txtOdpowiedz, "Proszę podać odpowiedź na pytanie",
                                               TypWalidacjiDanych.BRAK_TEKSTU);

            if (!string.IsNullOrEmpty(prvObslugaBledow.GetError(cmbPytanie))
                &&
                !string.IsNullOrEmpty(prvObslugaBledow.GetError(txtOdpowiedz)))
            {
                return;
            }

            WypelnienieComboBox zaznaczenie = WypelnienieComboBox.PobierzZaznaczenie(cmbPytanie);
            if(zaznaczenie == null)
            {
                Komunikaty.pokazBlad("Proszę wybrać pytanie");
                return;
            }

            DaneGlobalne.Uzytkownik.id_pytania_uzytkownika = zaznaczenie.ID;
            DaneGlobalne.Uzytkownik.odpowiedz = txtOdpowiedz.Text;

            PGM baza = PGM.Instancja();
            DataSet_PGM.uzytkownicyRow uzytkownik = baza.dane.uzytkownicy.FindByid_uzytkownicy(DaneGlobalne.Uzytkownik.id_uzytkownicy);
            if (uzytkownik == null)
            {
                Komunikaty.pokazBlad(
                    "Użytkownik został usunięty.\nSkontaktuj się z administratorem");
                return;
            }

            uzytkownik.id_pytania_uzytkownika = DaneGlobalne.Uzytkownik.id_pytania_uzytkownika;
            uzytkownik.odpowiedz = DaneGlobalne.Uzytkownik.odpowiedz;
            baza.ZapiszUzytkownikow();

            DialogResult = DialogResult.OK;
            Close();

        }


        public void Init(bool mozliwoscRezygnacji)
        {
            buttonAnuluj.Visible = mozliwoscRezygnacji;
        }
    }
}
